package com.yzq.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yzq.model.dto.space.analyze.*;
import com.yzq.model.entity.Space;
import com.yzq.model.vo.spaceAnalyze.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface SpaceAnalyzeService extends IService<Space> {

    /**
     * 获取空间使用情况分析
     *
     * @param spaceUsageAnalyzeRequest
     * @param request 请求
     * @return
     */
    SpaceUsageAnalyzeResponse getSpaceUsageAnalyze(SpaceUsageAnalyzeRequest spaceUsageAnalyzeRequest,  HttpServletRequest request);

    /**
     * 获取空间图片分类分析
     *
     * @param spaceClassifyAnalyzeRequest  获取分类的参数
     * @param request 请求
     * @return
     */
    List<SpaceClassifyAnalyzeResponse> getSpaceCategoryAnalyze(SpaceClassifyAnalyzeRequest spaceClassifyAnalyzeRequest, HttpServletRequest request);

    /**
     * 获取空间图片标签分析
     *
     * @param spaceTagAnalyzeRequest 获取标签的参数
     * @param request 请求
     * @return
     */
    List<SpaceTagAnalyzeResponse> getSpaceTagAnalyze(SpaceTagAnalyzeRequest spaceTagAnalyzeRequest,  HttpServletRequest request);

    /**
     * 获取空间图片大小分析
     *
     * @param spaceSizeAnalyzeRequest 获取大小的参数
     * @param request 请求
     * @return
     */
    List<SpaceSizeAnalyzeResponse> getSpaceSizeAnalyze(SpaceSizeAnalyzeRequest spaceSizeAnalyzeRequest,  HttpServletRequest request);

    /**
     * 获取空间用户上传行为分析
     *
     * @param spaceUserAnalyzeRequest 获取用户上传行为的参数
     * @param request 请求
     * @return
     */
    List<SpaceUserAnalyzeResponse> getSpaceUserAnalyze(SpaceUserAnalyzeRequest spaceUserAnalyzeRequest,  HttpServletRequest request);

    /**
     * 空间使用排行分析（仅管理员）
     *
     * @param spaceRankAnalyzeRequest 获取排行的参数
     * @param  request 请求
     * @return 排行结果
     */
    List<Space> getSpaceRankAnalyze(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest, HttpServletRequest request);
}
